#pragma once

#include "Renderizable.h"


class Cilindro : public Renderizable {
public:
	Cilindro();
	~Cilindro();

	virtual void renderizar(const glm::mat4 &matVista, const glm::mat4 &matProyeccion, const glm::mat4 &matModelo) const;

private:
	// A mayor cantidad de lados mas "redondo" es el cilindro
	const int m_cantLados;

	// La cantidad de vertices de cada elemento
	const unsigned int m_cantVertices_tapa_base;
	const unsigned int m_cantVertices_lateral;

	// Los vertices separados en cada elemento
	glm::vec3* m_tapa;
	glm::vec3* m_base;
	glm::vec3* m_lateral;

	// Las normales de cada elemento
	glm::vec3* m_normales_tapa;
	glm::vec3* m_normales_base;
	glm::vec3* m_normales_lateral;

	// Los index buffer de cada elemento
	GLuint* m_indexBuff_tapa;
	GLuint* m_indexBuff_base;
	GLuint* m_indexBuff_lateral;
};

